Almighty

Almighty is an open source upstream project by Red Hat for end to end application development and management. Developed in Golang and Angular2, Almighty’s vision is to enable any developer to plan, code, test, build and deploy their applications.

Currently, the Project is divided into 4 stages:

  1. Planner
  2. Test
  3. Build
  4. Deploy

Right now the main focus of Almighty is on the Planner stage.

What is the Planner?

The Planner is an aggregation of remote issue trackers like Github, Jira, Trello and Bugzilla.

The aim here is to import issues from these issue trackers and display them on the Planner window. So that it becomes a one-stop for people, even if different teams are using different tools to track issues; a common situation for big enterprises.

Work for the Planner stage is in full swing. In the coming months, we will have a code editor, test environment and deployment tools covered too.

Whenever I start telling these things to anyone, I mostly get two questions:

  1. There are many projects like this, so why is RedHat reinventing the wheel?
  2. But why in Golang??

So for the first question, I’d say that, yes, many projects like this already exist or are under development, but none of them is open sourced!

Apart from this fact, the best feature is the OpenShift’s integration within Almighty. With Openshift on the same application, you don’t need to worry about scale.

As for the question around Go, I might not be the best person to answer that. I have been previously working in Python/ Django. This is the first time I am working in Go. It is a completely new experience, yet the advantages of using Go were visible early on in the project.  Some of the advantages of Go I can relate to are:

  1. Go’s support for concurrency at the language level.
  2. Go’s quick compilation time.
  3. Go’s Error Handling is very efficient.
  4. Go’s ever efficient garbage collection.
  5. Goroutines!!

For the Planner stage, we are using the Goa framework. Goa provides an efficient design first approach for building microservices in Go.

My contribution to the project so far

I have integrated the Github API in the Almighty-core. The code for the same can be found here: Integrating GithubAPI

One of the favourite tasks I worked on was, to filter the work-items(henceforth we will call each issue a work-item) assigned to the logged-in user.

Working on this issue, I learned how to query a JSONB in Postgres. The field  was an array, and that posed a challenge.

After creating the gin INDEX I had to use the @> operator to query the database, hence made support for the related query in Almighty-core. Wola! the task was done 🙂 🙂

You can view my commits to the project so far here: ALM work

 

As for the project, Almighty is going on a super fast pace and its first stage, the Planner has got many features up and running. From work-item linking to adding comments, we have covered it all.

For future updates about rest of the stages in Almighty, stay tuned.

Thanks for reading.

Cheers!!

For the curious ones, here are the links for further references:

Surreal Experience of Outreachy

Hi  🙂

The mid-term has been completed successfully, 15 days left of this awesome journey now. Started 2 and a half months ago. I cherish every moment i worked for the project. Mozlando, meeting awesome people and everything else was just superb.

The work is going pretty well and till now for my project i have solved up 25 issues and there are more to come. But i think the statistics is not the only thing  given importance to(as in start it was my whole soul goal but its not now), it’s the new areas i get to explore. Learn new things every day.

Wrapping this in short with my work here 🙂

https://github.com/whatwg/html/pull/669

https://github.com/whatwg/html/pull/664

https://github.com/whatwg/html/pull/647

https://github.com/whatwg/html/pull/631

https://github.com/whatwg/html/pull/700

https://github.com/whatwg/html/pull/699

https://github.com/whatwg/html/pull/680

https://github.com/whatwg/mimesniff/pull/2

Thanks for reading

Richa

Outreachy Mid-Term

Installing Wattsi on Ubuntu 14.04

This week i installed Wattsi. “Wattsi” is a build tool for creating the HTML Standard from its source. It works in concert with other scripts.

I am adding the steps of how to install it locally, and how to cope if any of the following errors occurs mentioned below:

Follow the Readme of Wattsi:

https://github.com/whatwg/wattsi/blob/master/README.md

Mainly the errors occur due to incompatible version of fpc with wattsi:

1. Ubuntu comes with the pre-installed package of Free Pascal Compiler. Firstly check the version by typing fpc in terminal. Please make sure the version is compatible with the Wattsi’s required version which is currently 3.0.0 .

2. otherwise first remove the Pre-installed package by:
sudo apt-get remove fpc*
and then install a new by choosing the appropriate operating system from: http://www.freepascal.org/download.var

3. After downloading the package,
when the .tar file is downloaded, first untar the file, in some directory where you have write permission, using the following command:

tar -xvf fpc.tar

To install Free Pascal, all that needs to be done now is give the following command:
./install.sh

Some other important links:

4. After adding wattsi to the same root directory as the html-build and whatwg/html,
Follow these steps:
1)  cd wattsi/
2) ./build.sh

If for some reason you need to build a wattsi binary with 64-bit code, you can do so by adding -Px86_64 to the DEFINES line in the src/build.sh file, so that it looks like this:

DEFINES=”-dUSEROPES -dLINES -dPARSEERROR -Px86_64″

5. html-build script uses wattsi from a remote server, but if you have a slow internet connection, it might take a very long time to parse or break in between. So for me it was better to install locally.

Project’s Progress this week:

Here are the PR’s i filed and are successfully merged:
1. https://github.com/whatwg/html/pull/484
2. https://github.com/whatwg/html/pull/485
3. https://github.com/whatwg/html/pull/499
4. https://github.com/whatwg/html/pull/556

It’s been halfway now. Internship has made me learned alot and will do so with every issue i do.

Thanks for reading
Bestest
Richa

Outreachy week 4 and 5

Hello everyone,

In these two weeks i have managed to finish 5 issues of whatwg. I would like to tell more about the issues i worked on this week:

1. The First issue #331 is related to deprecation and as it was my first bug related to removal of a section from the whatwg spec. If considered as a bug for a new one it made me learnt a lot about the spec. There were loads of other sections related to it and for removing it every bit has to considered correctly.

2.  The Other two Bugs:

  1.   #485
  2.   #462
    made me learn how to write a short and to the point spec document plus some wrapping up the document!.

#456 – Thanks to Simon Peters for the reviews 🙂

4.  The next PR is in review right now – #499

The last thing i would like to mention about the Thursday meeting with my mentor(annevk).
After some more discussions with other contributors for further work on https://developers.whatwg.org/ , i will be starting on the whatwg’s another project. I have currently set my goals to complete 5 more issues in the next two weeks and setup Wattsi on my machine. Wattsi is the build tool of Whatwg spec.

Thanks for giving time to read my work, i’ll be updating more here.
Have a nice day

Outreachy week 2 and 3

HAPPY 2K16 All of you 

Here is now the successful end of two more weeks. Whatwg spec documentation is very diverse and big and to get it thoroughly is a very big thing, i think. But this week has been a achievement for me as i have been getting most of the points how i have to work on the spec and it’s issues. This week i also kept an eye over my writing skills too, as just solving the bug is not enough, presenting the PR and making it easy to understand for others is also very important. Thanks to Domenic Denicola(Domenic)

In the 2nd Week, i mostly first sorted out which bugs i have to work on and here is the To-Do List for this week:

  1. https://github.com/whatwg/html/issues/388
  2. https://github.com/whatwg/html/issues/115
  3. https://github.com/whatwg/html/issues/331
  4. https://github.com/whatwg/html/issues/345

 

The Bugs i have successfully worked upon till now are:

  1. https://github.com/whatwg/html/pull/418
  2. https://github.com/whatwg/html/pull/449
  3. https://github.com/whatwg/html/pull/456

 

We (my mentor annevk and me) do a status meeting every Thursday. Every meeting is very helpful to create a clear picture of what needs to be done and we find solutions to road blocks I face.

Summarizing some points about the things i got to learn from the meetups:

  1. First of all seeing such a big spec document, i got worried to reach upto my goals. But annevk suggested to just reach on those bugs first i could work easily on and then gradually learning about it, i’ll be more confident solving them.
  2. Hence i followed his advice and here now i have solved 3 bugs 🙂
  3. First and second week was mostly spent in gradually pacing up for the project, but now everything is sorted according to the difficulty and understanding levels. And i will be following my above To-Do list of issues for this week.

Thanks for reading through my two week journey, i’ll be updating my further work and achievements here. Stay Tuned!

Cheers

 

Outreachy Week 1 @Whatwg,Mozilla

Hello everyone, i have started writing my first blog for one of my greatest achievement till now. Explaining it in short that i have selected for 2016 Outreachy’s winter session for the project Web Hypertext Application Technology Working Group(Whatwg) in mozilla.

My internship’s first week started in Mozlando that is the All Hands Workweek of mozilla which was in Orlando and i would be writing a whole separate post for it because the things i learned there needs a large space. I met my mentor Anne Van Kesteren there :). The week started as i planned because the first thing which was to be done was to discuss more about my project with my mentor.

About the Project

The main goals i have to cover in my internship period is to work on the Whatwg Bugs and solve it’s issues. As my initial contribution for the project i did two of their previous issues and they were merged in the repository successfully.

Patch Links:
Bug 245
Bug 238

From this week i have started to work on the bugs and will be updating my work next week here.

P.S Some words for my mentor and my friends

My mentor

Anne van kesteren has been working in Whatwg work from starting of this project for about 10 years now and the amount of knowledge i gained from him after meeting him this week is going to help me a lot for the project. I can say that i am lucky to work under his guidance in my internship.

Friends and Insipiration

Talking about how i came to know about open source world and to enlight that spark for technology in me, I want to thank my senior Srishti Sethi, one of the biggest inspiration which helped me achieve this. She was a GSoC intern for gnome under which she worked on GCompris and devloped awesome Braille activities.

Next thanks goes to my dearest and bestest friend Siddhesh Suthar, Who has always supported in my hard times and good times. He has also completed his GSoC project under KDE. He has always believed in me at times when i loosed confiedence in me :).

The Thank you list is going to be a never ending one so summarising it here with a special thanks to Ayush sharma, Renu Rupela.

A little more About me 🙂

I have completed my Graduation from Govt. Enginnering College, Bikaner in major Information Technology. I am open source enthusiast and familiar with FOSS since more than one year now and before mozilla i have been a Bug Solver in Wikimedia too. Looking forward to my internship and will update about my project and expreince here regularly.

Here is a link to my Outreachy Proposal

Cheers!

Rits

Richa Rupela